<?php
//实现一个简单的多态
interface USB{
    //接口中的方法权限必须是public,并且只有抽象方法或常量
    function mount();
    function work();
    function unmount();
}
class Upan implements USB{
    function mount() {
        echo "U盘成功挂载！<br>";
    }
    function work() {
        echo"U盘正在工作......<br>";
    }
    function unmount() {
        echo "U盘被成功卸载！<br>";
    }
}
class ShuBiao implements USB{
    public function mount() {
        echo "USB鼠标成功插入！<br>";
    } 
    public function work() {
        echo "USB鼠标正在工作......<br>";        
    }
    public function unmount() {
        echo "USB鼠标被成功拔除！<br>";
    }
}
class DianNao{
    function useUSB($usb){    //这就是一种多态，当传进去的参数为不同的usb设备时，调用不同设备的相同的方法名，但产生了不同的效果
        $usb->mount();
        $usb->work();
        $usb->unmount();
    }
}
class Worker{
    function install(){
        $dn=new DianNao; //激活电脑
        $up=new Upan;//激活优盘
        $sb=new ShuBiao;//激活鼠标
        $dn->useUSB($up);//电脑访问优盘
        $dn->useUSB($sb);//电脑访问鼠标
    }
}
$usb_user=new Worker;//激活一个USB设备的使用者
$usb_user->install();//使用者调用安装USB设备的方法